﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SundStudent.ModelLayer;
using SundStudent.ControlLayer;

namespace SundStudent.GUILayer
{
    public partial class ProblemHandlingEvaluering : Form
    {
        private LektionsPatient selectedPatient;
        private List<UdfoertHandlinger> handlingsliste;
        private UdfoertHandlinger diagnose;
        private int nyDiagnose;
        public ProblemHandlingEvaluering(LektionsPatient patient)
        {
            InitializeComponent();
            selectedPatient = patient;
            nyDiagnose = 0;
            labelAktuelPatient.Text = selectedPatient.Navn + " Stue:  " + selectedPatient.Stue.Stuenr + " Seng " + selectedPatient.Seng.Sengnr;


            findDiagnose();
        }

        private void dateTimePicker3_ValueChanged(object sender, EventArgs e)
        {

        }

        private void richTextBoxPoblem_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            String dato = dateTimePicker1.Text.ToString();
            DateTime dato1 = new DateTime();
            dato1 = DateTime.Parse(dato);
            PatientControler ctrlPatient = new PatientControler();
            try
            {
                string handling = "";
                if (nyDiagnose == 1)
                {
                    handling = "Sygepleje diagnose";
                    diagnose = null;
                }
                else
                {
                    handling = comboBox2.SelectedItem.ToString();
                }
                string beskrivelse = richTextBoxPoblem.Text.ToString();
                string init = textBoxInfoKildeaarsag.Text.ToString();
                String vagt = comboBox1.SelectedItem.ToString();
                int rc = ctrlPatient.GemUdfoertHandling(dato1, selectedPatient.Nr, vagt, init, handling, beskrivelse, selectedPatient.IndDato, diagnose);
                if (rc > 0)
                {
                    label6.Text = "Oplysningerne er  registreret";
                    // updateListBoxes();
                    if (nyDiagnose == 1)
                    {
                        findDiagnose();
                        nyDiagnose = 0;
                    }
                    else
                    {
                        hentOplTilDiagnose();
                    }
                    textBoxInfoKildeaarsag.Text = "";
                    richTextBoxPoblem.Text = "";

                }
            }
            catch (Exception inpute)
            {
                label6.Text = "Der mangler nogle oplysninger";
            }


        }
        private void updateListBoxes()
        {
            listBox1.Items.Clear();
            listBox2.Items.Clear();
            listBox3.Items.Clear();
            listBox4.Items.Clear();

            PatientControler ctrlPatient = new PatientControler();
            List<UdfoertHandlinger> handlingsliste = ctrlPatient.HenAlleHandlinger(selectedPatient.Nr);
            if (handlingsliste != null)
            {
                foreach (UdfoertHandlinger udfoertObj in handlingsliste)
                {
                    if (udfoertObj.Handling.Equals("Sygepleje diagnose"))
                    {
                        listBox1.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                    }
                    if (udfoertObj.Handling.Equals("Mål"))
                    {
                        listBox2.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                    }

                    if (udfoertObj.Handling.Equals("Sygepleje handling"))
                    {
                        listBox3.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                    }
                    if (udfoertObj.Handling.Equals("Evaluering"))
                    {
                        listBox4.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                    }
                }
            }
        }

        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
        private void findDiagnose()
        {
            listBox1.Items.Clear();
            listBox2.Items.Clear();
            listBox3.Items.Clear();
            listBox4.Items.Clear();
            comboBox3.Items.Clear();
            comboBox3.Items.Add("Opret ny diagnose");
            PatientControler ctrlPatient = new PatientControler();
            handlingsliste = ctrlPatient.HenAlleDiagnoser(selectedPatient.Nr);
            if (handlingsliste != null)
            {
                foreach (UdfoertHandlinger udfoertObj in handlingsliste)
                {
                    if (udfoertObj.Handling.Equals("Sygepleje diagnose"))
                    {
                        comboBox3.Items.Add(udfoertObj.Beskrivelse);
                    }

                }
            }
        }
        private void hentOplTilDiagnose()
        {
            listBox1.Items.Clear();
            listBox2.Items.Clear();
            listBox3.Items.Clear();
            listBox4.Items.Clear();

            if (diagnose != null)
            {
                listBox1.Items.Add(diagnose.Dato.Day + "." + diagnose.Dato.Month + "." + diagnose.Dato.Year + " " + diagnose.Beskrivelse);
                PatientControler ctrlPatient = new PatientControler();
                List<UdfoertHandlinger> handlingTilDiagnose = ctrlPatient.HenAlleHandlingerTilDiagnose(selectedPatient.Nr, diagnose);
                if (handlingTilDiagnose != null)
                {
                    foreach (UdfoertHandlinger udfoertObj in handlingTilDiagnose)
                    {

                        
                        if (udfoertObj.Handling.Equals("Mål"))
                        {
                            listBox2.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                        }

                        if (udfoertObj.Handling.Equals("Sygepleje handling"))
                        {
                            listBox3.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                        }
                        if (udfoertObj.Handling.Equals("Evaluering"))
                        {
                            listBox4.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                        }
                    }
                }
            }
        }
        private void fyldCombobox2()
        {
            comboBox2.Items.Clear();
            comboBox2.Items.Add("Mål");
            comboBox2.Items.Add("Sygepleje handling");
            comboBox2.Items.Add("Evaluering");
        }

        private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
        {
            label6.Text = "";
            listBox1.Items.Clear();
            listBox2.Items.Clear();
            listBox3.Items.Clear();
            listBox4.Items.Clear();
            int index = comboBox3.SelectedIndex;
            Console.WriteLine(index + "Index");
            if (index == 0)
            {
                Console.WriteLine("der skal oprettes en nye diagnose");
                nyDiagnose = 1;
                comboBox2.Text = "Sygepleje diagnose";
            }
            else
            {
                fyldCombobox2();
                if (handlingsliste != null)
                {

                    diagnose = handlingsliste.ElementAt(index - 1);
                    Console.WriteLine("valgt diagnose" + diagnose.Nr);
                    PatientControler ctrlPatient = new PatientControler();
                    List<UdfoertHandlinger> handlingTilDiagnose = ctrlPatient.HenAlleHandlingerTilDiagnose(selectedPatient.Nr, diagnose);
                    if (handlingTilDiagnose != null)
                    {
                        listBox1.Items.Add(diagnose.Dato.Day + "." + diagnose.Dato.Month + "." + diagnose.Dato.Year + " " + diagnose.Beskrivelse);
                        foreach (UdfoertHandlinger udfoertObj in handlingTilDiagnose)
                        {
                           
                            if (udfoertObj.Handling.Equals("Mål"))
                            {
                                listBox2.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                            }

                            if (udfoertObj.Handling.Equals("Sygepleje handling"))
                            {
                                listBox3.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                            }
                            if (udfoertObj.Handling.Equals("Evaluering"))
                            {
                                listBox4.Items.Add(udfoertObj.Dato.Day + "." + udfoertObj.Dato.Month + "." + udfoertObj.Dato.Year + " " + udfoertObj.Beskrivelse);
                            }
                        }
                    }
                }
            }
        }
    }
}
 

